/******************************************************************************\
*                                                                              *
 *     File: Dier.cc                                                            *
 *                                                                              *
 *   Author: Jan Meuleman / Douwe A. van Twillert                               *
 *  Purpose: Declaratie van de klasse Dierentuin                                *
 *  Version: 1.0      MEM 20020124                                              *
 *           - eerste versie                                                    *
 *  Version: 1.1      TWI 20080218                                              *
 *           - header aangepast voor duidelijk kunnen printen                   *
 *                                                                              *
 \******************************************************************************/

#include <iostream>
#include <string>
#include "Kooi.h"
/*
 *   Constructor
 */
Kooi::Kooi(string Soort) {
	dierSoort = Soort;
	dieren = new list<RefHandle<Dier> > ;
}

Kooi::~Kooi() {
	if (dieren->size() != 0) {
		//dieren lijst legen
		dieren->erase(dieren->begin(), dieren->end());

		delete dieren;
	}
	dierSoort = "";
}

void Kooi::addDier(RefHandle<Dier> eenDier) {
	assert(eenDier != 0);

	//dieren->push_back(eenDier);
}

void Kooi::dierVerwijderen(RefHandle<Dier> eenDier) {
	assert(eenDier != 0);

	dieren->remove(eenDier);
	//delete eenDier;

}

string Kooi::getSoort() {
	return dierSoort;
}

list<RefHandle<Dier> > *Kooi::getDieren() {
	return dieren;
}

int Kooi::getDierenSize(){
	return dieren->size();
}

void Kooi::drukAf() {
	cout << "Gevonden dieren bij diersoort: " << dierSoort << endl;
	//dieren algemene lijst leeg gooien
	for (list<RefHandle<Dier> >::iterator iter = dieren->begin(); iter != dieren->end(); ++iter) {
		(*iter)->drukaf();
	}
}

